#ifndef KPTESTINFO_H
#define KPTESTINFO_H

#include <QDateTime>

// 考核基本信息
struct KpTestInfo
{
    // 考核方式
    enum KeTestMode
    {
        K_DICTATE,
        K_PHONETIC,
        K_ENGLISH,
        K_CHINESE
    };

    QDateTime startTime; // 考核开始时间
    int ticked{ 0 }; // 考核用时，按秒计
    KeTestMode mode{ K_DICTATE }; // 考核模式
    int amount{ 0 }; // 题目总数
    int score{ 0 }; // 答对题数

    // 根据考核基本信息生成考核标题
    QString formatTitle() const {
        return formatTitle(mode, amount);
    }

    // 将KpTestInfo格式化为字符行
    QString toLine() const;

    // 从字符行中解析还原KpTestInfo
    bool fromLine(const QString& line);

    static QString formatTitle(int mode, int amount);

    static QString modeStr(KeTestMode mode);
};

#endif // KPTESTINFO_H
